/**
 * 描述: 根据条件获取首页banner列表
 * 版权: Copyright (c) 2019
 * 公司: 深圳市网商天下科技开发有限公司
 * 作者: 许堉颖
 * 版本: 1.0.0
 * 创建时间: 2019/5/7 10:21
 */

const utils = require('../../utils.js');
// 创建返回结果
const resultConstructor = utils.resultConstructor;

/**
 * 获取banner列表
 * @param filter 筛选规则
 * @param sort 排序规则(fieldName: string, order: string)
 * @param limit 数据量限制(上限20) (max: number)
 * @param skip 页码(offset: number)
 */
module.exports =async function getBanner({ filter = {}, sort = { fieldName: 'create_time', order: 'desc' }, limit = 10, skip = 1 }) {
  // 获取数据库链接
  const db = utils.getDatabase();
  // 数据库操作
  const database = db.collection('rc_homepage_banner');

  // 数据总数
  let count = await database.where(filter).count().then(res => {
    return res.total;
  })
  // 当前页
  let currentPage = skip;
  // 总页数
  let totalPage = limit > count ? 1 : parseInt(count/limit);

  let resultPromise = database
    .where(filter)
    .limit(limit)
    .orderBy(sort.fieldName, sort.order)
    .skip((skip-1) * limit)
    .get();
  // 生成返回值
  return resultConstructor(resultPromise, count, currentPage, totalPage);
}